Electronic data processing systems comprise several basic units: a central processing unit, a main memory, an input-output unit, and a system controller. The processor performs arithmetic and logic functions, the main memory stores program instructions and data, the I/O unit interfaces peripheral devices and remote users to the system, and the controller coordinates all operations. Typically, as in the Honeywell 6000 system, for example, all I/O operations including main memory access are handled through the system controller.
As the role of data processing has grown larger, the demand has increased for larger capacity computer systems to handle the ever increasing processing requirements. Processing speeds as well as data capacity have increased. One limitation of system size has been the cost of high-speed main memories. Such memories, whether core or semiconductor, are considerably more expensive than larger capacity but slower bulk memories such as magnetic disks or tapes.
Since a user needs only a portion of his program and data in storage for execution at any given time, the concept of program segmentation and memory paging evolved. The Honeywell 6800 system and its predecessors are examples of computer systems which have successfully employed segmentation and paging techniques. With these techniques, extended memories may be employed with main memory with users seeing a "virtual memory" of greater capacity than the real main memory.
More specifically, U.S. Pat. No. 3,525,080 issued to Couleur et al discloses a data storage control apparatus for a multi-programmed data processing system. Couleur et al utilizes peripheral control word and data control word addressing to achieve relative addressing, as is well known to those skilled in the art.
By calling only a portion of the user's program and data into execution at any given time, the capacity requirements of main memory are reduced. Further, the use of pages for memory storage permits greater flexibility in memory use since a page may be stored wherever space permits, without the need for storing all related pages together. Such overhead functions as periodic memory compacting, for example, are eliminated. User security is also enhanced through the use of memory paging.
Since pages of data or instructions may be stored wherever available space is found, page tables must be maintained for locating the stored pages. Memory addresses are provided by page table lookup, and by adding an offset to the desired page address if only a portion of the page is to be accessed. Further, a limit or bound may be expressed which further limits the accessible portion of the page. A secure method of accessing memory through use of descriptor-defined base, bounds, and access rights is disclosed in copending application Ser. No. 462,144, filed Apr. 18, 1974, and assigned to the present assignee.
The development and verification of addresses for paged memory, with or without bounds verification, require considerable time which has heretofore limited the system processor time for program execution.